Atbloķējiet noturīgu AR pieredzi tīmeklī. Šī rokasgrāmata aplūko WebXR noturīgos enkurus, aptverot ieviešanu, globālos lietošanas gadījumus, izaicinājumus un iegremdējošā tīmekļa nākotni.
Telpiskā tīmekļa pamats: Padziļināts ieskats WebXR noturīgajos enkuros
Iedomājieties, ka novietojat virtuālu mēbeli savā viesistabā, izmantojot viedtālruni. Jūs to pielāgojat, pastaigājaties apkārt un redzat, kā tā iekļaujas. Tagad iedomājieties, ka aizverat pārlūkprogrammu, un, kad atgriezīsieties rīt, virtuālā mēbele atradīsies tieši tur, kur to atstājāt. Jūsu partneris pat var atvērt to pašu tīmekļa lapu savā ierīcē un redzēt to pašu mēbeli tajā pašā vietā. Šī ir noturības maģija papildinātajā realitātē, un tā vairs nav tikai vietējo lietojumprogrammu domēns. Laipni lūdzam WebXR noturīgo enkuru pasaulē.
Gadiem ilgi tīmekļa papildinātā realitāte (WebAR) ir bijusi aizraujoša, bet bieži vien īslaicīga pieredze. Digitālie objekti parādītos, bet, tiklīdz sesija beigtos, tie pazustu digitālajā ēterī. Tas ierobežoja WebAR ar īslaicīgām mārketinga kampaņām vai vienkāršām demonstrācijām. Noturīgie enkuri pilnībā maina šo paradigmu. Tie ir fundamentāla tehnoloģija, kas ļauj digitālo saturu "saglabāt" reālajā pasaulē, radot jēgpilnu, vairāku sesiju pieredzi, kas pieejama ikvienam, kam ir tīmekļa pārlūkprogramma.
Šī visaptverošā rokasgrāmata ir paredzēta izstrādātājiem, produktu vadītājiem un tehnoloģiju entuziastiem visā pasaulē. Mēs izpētīsim, kas ir noturīgie enkuri, kā tie darbojas, kā tos ieviest, izmantojot WebXR Device API, un neticamos lietojumus, ko tie atver patiesi globālam, iegremdējošam tīmeklim.
Kas īsti ir WebXR enkuri?
Pirms iedziļināties noturībā, noskaidrosim, kas ir enkurs XR (paplašinātās realitātes) kontekstā. Enkurs ir īpašs, fiksēts punkts un orientācija reālajā pasaulē, ko ierīces izsekošanas sistēma var uzraudzīt. Domājiet par to kā par digitālu spraudīti, ko iespiežat reālās pasaules vietā.
Jūsu AR iespējota ierīce pastāvīgi analizē savu apkārtni, izmantojot savas kameras un sensorus, process, ko bieži dēvē par SLAM (vienlaicīga lokalizācija un kartēšana). Tā identificē unikālus elementu punktus - mēbeļu stūrus, rakstus uz sienas, faktūras uz grīdas - lai saprastu savu pozīciju un orientāciju telpā. Enkurs ir punkts, kas ir saistīts ar šo pasaules izpratni. Pārvietojoties, ierīce nepārtraukti atjaunina jūsu virtuālo objektu pozīciju attiecībā pret enkuru, nodrošinot, ka tie šķiet stabili un fiksēti reālajā pasaulē.
Īslaicīgie vs. Noturīgie enkuri: Galvenā atšķirība
Atšķirība starp enkuru veidiem ir ļoti svarīga, lai saprastu to spēku:
- Īslaicīgie enkuri (sesijas bāzes): Tie ir standarta enkuri, kas WebXR ir pieejami jau kādu laiku. Tie tiek izveidoti un pastāv tikai vienas XR sesijas laikā. Kad lietotājs aizver cilni vai pārvietojas prom, enkurs un tā atsauce uz reālo pasauli tiek zaudēti uz visiem laikiem. Tie ir lieliski piemēroti mirkļa pieredzei, piemēram, ātras spēles spēlēšanai uz galda.
- Noturīgie enkuri (starp sesijām): Šis ir spēles mainītājs. Noturīgs enkurs ir enkurs, ko pārlūkprogramma var saglabāt un atjaunot nākotnes sesijā. Ierīce atceras enkura atrašanās vietu attiecībā pret reālo pasauli. Kad sākat jaunu AR sesiju tajā pašā fiziskajā telpā, varat lūgt pārlūkprogrammai "ielādēt" šo enkuru, un jūsu virtuālais saturs atkal parādīsies tieši tur, kur to atstājāt.
Analogy: Īslaicīgs enkurs ir kā rakstīšana uz tāfeles, kas tiek nodzēsta dienas beigās. Noturīgs enkurs ir kā informācijas iegravēšana uz pastāvīgas plāksnes, kas piestiprināta pie sienas.
"Noturības problēma" un kāpēc tas ir svarīgi globālajam tīmeklim
Noturības trūkums ir bijis būtisks šķērslis dziļi noderīgu un saistošu AR lietojumprogrammu izveidei. Bez tā katra pieredze ir "vienreizējs" darījums, katru reizi atiestatot uz nulli. Šis ierobežojums neļauj izstrādāt lietojumprogrammas, kas laika gaitā rada vērtību.
Apsveriet šādus scenārijus, kas iepriekš nebija iespējami tīmeklī:
- Sadarbības dizains: Arhitektūras komanda Tokijā un klients Berlīnē vēlas pārskatīt 3D modeli uz fiziska sanāksmju telpas galda. Bez noturības viņiem modelis būtu manuāli jāpārkārto katru reizi, kad viņi atvērtu lietojumprogrammu.
- Rūpnieciskā apmācība: Tehniķim ir jāatstāj virtuālas instrukcijas uz sarežģītas iekārtas nākamajam maiņas strādniekam. Bez noturības šīs instrukcijas pazustu, kad pirmā tehniķa sesija beigtos.
- Personalizētas telpas: Lietotājs vēlas izrotāt savu māju ar virtuālu mākslu. Viņi zaudētu visus savus rūpīgi novietotos mākslas darbus katru reizi, kad aizvērtu pārlūkprogrammu.
Noturīgie enkuri atrisina šo problēmu, izveidojot tiltu starp digitālajām sesijām, kas balstās uz fizisko pasauli. Tas ļauj izveidot jaunu lietojumprogrammu klasi, kas ir kontekstuālas, sadarbības un nepārtrauktas, veidojot "Telpiskā tīmekļa" vai "Metaversuma" - pasaules, kurā digitālā informācija ir nemanāmi integrēta mūsu fiziskajā vidē - celtniecības blokus.
Kā darbojas noturīgie enkuri: ieskats zem pārsega
Tehnoloģija, kas slēpjas aiz noturīgajiem enkuriem, ir datorredzes un telpiskās skaitļošanas brīnums. Lai gan API abstrahē lielu daļu sarežģītības, izstrādātājiem ir noderīgi izprast galvenos jēdzienus.
- Pasaules kartēšana: Kad sākat AR sesiju, jūsu ierīce sāk veidot savas apkārtnes karti. Tā nav fotogrāfiska karte, bet gan unikālu elementu punktu mākonis. Šī karte ir telpas ģeometrijas matemātisks attēlojums.
- Enkura izveide: Kad pieprasāt izveidot enkuru noteiktā pozīcijā, sistēma saista šī enkura koordinātas ar pamatā esošo elementu punktu karti.
- UUID ģenerēšana: Noturīgam enkuram sistēma ģenerē Universāli unikālu identifikatoru (UUID) - garu, unikālu virkni - kas darbojas kā enkura pastāvīgais ID. Šis UUID tiek piešķirts jūsu tīmekļa lietojumprogrammai.
- UUID saglabāšana: Jūsu lietojumprogrammas pienākums ir saglabāt šo UUID. Varat to saglabāt pārlūkprogrammas
localStoragevienam lietotājam, vienai ierīcei, vai arī varat to nosūtīt uz serveri, lai kopīgotu ar citiem lietotājiem vai piekļūtu no citām ierīcēm. - Atkārtota lokalizācija: Kad sākat jaunu sesiju tajā pašā fiziskajā vietā, ierīce atkal sāk kartēt savu vidi. Tā salīdzina jauno karti ar iepriekš saglabātajām kartēm. Ja tā atrod atbilstību, tā veiksmīgi "atkārtoti lokalizē" sevi.
- Enkura atjaunošana: Jūsu lietojumprogramma nodrošina saglabātos UUID(s) WebXR API. Ja ierīce ir veiksmīgi atkārtoti lokalizējusies apgabalā, kurā šis enkurs tika izveidots, sistēma var noteikt enkura pašreizējo pozīciju un atjaunot to, lai to izmantotu jūsu lietojumprogramma.
Piezīme par privātumu: Šis process ir izstrādāts, ņemot vērā privātumu. Elementu punktu kartes, ko saglabā ierīce, ir abstrakti dati, nevis lasāmi attēli vai video no lietotāja vides. WebXR specifikācija pieprasa nepārprotamu lietotāja atļauju izmantot tādas funkcijas kā enkuri, nodrošinot, ka lietotājs vienmēr kontrolē.
Noturīgo enkuru ieviešana: praktisks ceļvedis izstrādātājiem
Iesāksim praktiski. Noturīgo enkuru ieviešana ietver dažus galvenos soļus WebXR Device API dzīves cikla laikā. Šajos piemēros tiek izmantots JavaScript un tiek pieņemta pamata pārzināšana par WebXR sesijas iestatīšanu.
1. Funkcijas noteikšana un sesijas pieprasījums
Pirmkārt, jums jāpieprasa funkcija `anchors`, veidojot savu XR sesiju. Šī ir obligāta funkcija, kas nozīmē, ka sesija neizdosies, ja pārlūkprogramma to neatbalsta.
async function activateXR() {
// Check for WebXR support
if (!navigator.xr) {
console.error("WebXR is not available.");
return;
}
// Request an immersive-ar session with the 'anchors' feature
try {
const session = await navigator.xr.requestSession('immersive-ar', {
requiredFeatures: ['anchors']
});
// ... session setup ...
} catch (error) {
console.error("Failed to start AR session:", error);
}
}
2. Jauna enkura izveide un saglabāšana
Kad jūsu sesija darbojas, varat izveidot enkuru. To parasti dara, reaģējot uz lietotāja darbību, piemēram, ekrāna pieskārienu. Jūs veiksiet trāpījumu testu, lai atrastu reālās pasaules virsmu, un pēc tam izveidosiet enkuru šajā pozīcijā.
// Inside your render loop or event handler
async function onSelect(event) {
const frame = event.frame;
const session = frame.session;
// Create a hit test source
const hitTestSource = await session.requestHitTestSource({ space: event.inputSource.targetRaySpace });
const hitTestResults = frame.getHitTestResults(hitTestSource);
if (hitTestResults.length > 0) {
const hitPose = hitTestResults[0].getPose(xrReferenceSpace);
try {
// Create the anchor at the hit-tested position
const anchor = await frame.createAnchor(hitPose.transform);
console.log("Anchor created successfully.");
// THE CRITICAL STEP: Store the anchor's UUID
// The anchor object has a UUID if persistence is supported.
if (anchor.anchorUUID) {
saveAnchorUUID(anchor.anchorUUID);
}
} catch (error) {
console.error("Could not create anchor:", error);
}
}
}
// Example function to save the UUID to localStorage
function saveAnchorUUID(uuid) {
let savedAnchors = JSON.parse(localStorage.getItem('my-ar-app-anchors') || '[]');
if (!savedAnchors.includes(uuid)) {
savedAnchors.push(uuid);
localStorage.setItem('my-ar-app-anchors', JSON.stringify(savedAnchors));
console.log(`Saved anchor UUID: ${uuid}`);
}
}
3. Enkuru atjaunošana jaunā sesijā
Kad sākas jauna sesija, jūsu pirmais uzdevums ir ielādēt saglabātos UUID un lūgt sistēmai tos atjaunot. Pēc tam pārlūkprogramma mēģinās tos atrast vidē.
// When your session starts
async function onSessionStarted(session) {
// ... other setup ...
// Restore previously saved anchors
await restoreSavedAnchors(session);
}
async function restoreSavedAnchors(session) {
const savedAnchors = JSON.parse(localStorage.getItem('my-ar-app-anchors') || '[]');
if (savedAnchors.length === 0) {
console.log("No anchors to restore.");
return;
}
console.log(`Attempting to restore ${savedAnchors.length} anchors...`);
try {
// The restoreAnchor method returns a promise that resolves when the anchor is found
const restoredAnchors = await Promise.all(
savedAnchors.map(uuid => session.restoreAnchor(uuid))
);
restoredAnchors.forEach(anchor => {
if (anchor) {
console.log(`Successfully restored anchor with UUID: ${anchor.anchorUUID}`);
// Now you can attach your 3D model to this restored anchor
add3DObjectToAnchor(anchor);
}
});
} catch (error) {
console.error("An error occurred while restoring anchors:", error);
}
}
4. Enkuru pārvaldība un dzēšana
Jūsu lietojumprogrammai ir jāapstrādā arī enkuru dzēšana gan no jūsu ainas, gan no jūsu pastāvīgās atmiņas. Sesijas rekvizīts `trackedAnchors` ir `Set`, kas satur visus enkurus (gan jaunizveidotos, gan atjaunotos), kas pašlaik tiek izsekoti.
// To delete an anchor
function deleteAnchor(anchor) {
// Remove from persistent storage
const uuid = anchor.anchorUUID;
let savedAnchors = JSON.parse(localStorage.getItem('my-ar-app-anchors') || '[]');
const index = savedAnchors.indexOf(uuid);
if (index > -1) {
savedAnchors.splice(index, 1);
localStorage.setItem('my-ar-app-anchors', JSON.stringify(savedAnchors));
}
// Tell the system to stop tracking it
anchor.delete();
console.log(`Deleted anchor with UUID: ${uuid}`);
}
// You can iterate through all tracked anchors in your render loop
function render(time, frame) {
for (const anchor of frame.session.trackedAnchors) {
// Get the anchor's pose and update your 3D object's position
const anchorPose = frame.getPose(anchor.anchorSpace, xrReferenceSpace);
if (anchorPose) {
// Update 3D model matrix
}
}
}
Globālie lietošanas gadījumi un lietojumprogrammas, ko atbloķē noturība
Noturīgie enkuri paaugstina WebAR no jaunuma līdz lietderībai, paverot spēcīgas lietojumprogrammas neskaitāmās nozarēs visā pasaulē.
E-komercija un mazumtirdzniecība
Globālie zīmoli var piedāvāt "izmēģini pirms pirkšanas" pieredzi, kas saglabājas. Lietotājs Brazīlijā var novietot virtuālu televizoru no korejas elektronikas zīmola uz savas sienas. Viņi var aizvērt pārlūkprogrammu, apspriest to ar savu ģimeni un vēlāk to atvērt vēlreiz, lai redzētu to tieši tajā pašā vietā. Tas rada daudz pārliecinošāku un noderīgāku iepirkšanās pieredzi.
Rūpnieciskie un uzņēmumu risinājumi
Apkopes inženieris Vācijas automobiļu rūpnīcā var izmantot tīmekļa lietotni, lai uz iekārtas novietotu pastāvīgus digitālos marķierus, norādot punktus, kuriem nepieciešama apkope. Tehniķis nākamajā maiņā, iespējams, darbuzņēmējs no citas valsts, kurš runā citā valodā, var atvērt to pašu tīmekļa saiti savā planšetdatorā un nekavējoties redzēt AR anotācijas, kas ir pilnībā saskaņotas ar reālās pasaules aprīkojumu, pārvarot saziņas barjeras un uzlabojot efektivitāti.
Arhitektūra, inženierija un būvniecība (AEC)
Arhitektūras firma Amerikas Savienotajās Valstīs var kopīgot saiti ar klientu Dubaijā. Klients var novietot ierosinātās ēkas virtuālo modeli mērogā 1:1 faktiskajā būvlaukumā. Modelis saglabāsies, ļaujot viņiem izstaigāt to un sniegt atsauksmes vairāku dienu laikā, pārskatot plānus.
Navigācija un ceļa rādīšana
Lielas, sarežģītas vietas, piemēram, starptautiskās lidostas, izstāžu zāles vai universitātes pilsētiņas, var izvietot pastāvīgu AR ceļa rādīšanu. Apmeklētāji var ielādēt tīmekļa lapu un redzēt pastāvīgu virtuālu ceļu, kas viņus ved uz vārtiem, stendu vai lekciju zāli. Tas ir daudz intuitīvāk nekā mēģināt sekot 2D kartei.
Izglītība un kultūra
Muzeji var izveidot pastāvīgas AR izstādes. Apmeklētājs varētu pavērst savu tālruni pret dinozaura skeletu un redzēt pastāvīgu informācijas, animāciju un anotāciju slāni, kas paliek vietā, kad viņi staigā apkārt. Skolēni klasē varētu kopīgi izķidāt virtuālu vardi uz saviem galdiem, un modelis saglabātos visā nodarbības laikā.
Māksla un izklaide
Mākslinieki var izveidot publiskas digitālās mākslas instalācijas, kas saistītas ar konkrētām reālās pasaules vietām. Lietotāji var apmeklēt parku vai pilsētas laukumu, atvērt URL un redzēt pastāvīgu virtuālu skulptūru. Vairāku spēlētāju spēlēm var būt pastāvīgi elementi, ar kuriem spēlētāji no visas pasaules var mijiedarboties kopīgā fiziskā telpā.
Izaicinājumi un apsvērumi globālai izstrādātāju auditorijai
Lai gan neticami spēcīgi, izstrādājot ar noturīgiem enkuriem, ir savi izaicinājumi, kas izstrādātājiem jāņem vērā, it īpaši, veidojot globālai auditorijai.
- Pārlūkprogrammas un ierīces atbalsts: WebXR enkuru modulis ir salīdzinoši jauns standarts. Atbalsts vēl nav vispārējs. Pašlaik tas ir pieejams galvenokārt pārlūkprogrammā Chrome operētājsistēmai Android ARCore saderīgās ierīcēs. Ir ļoti svarīgi pārbaudīt funkciju atbalstu un ieviest graciozu degradāciju lietotājiem, kuri izmanto neatbalstītas pārlūkprogrammas vai ierīces (piemēram, iOS). Jūsu pieredzei joprojām jābūt funkcionālai, iespējams, atgriežoties 3D skatītāja režīmā.
- Vides apstākļi: Pamatā esošā SLAM tehnoloģija balstās uz stabiliem vizuālajiem elementiem. Atkārtota lokalizācija var neizdoties, ja vide ir būtiski mainījusies starp sesijām. Drastiskas izmaiņas apgaismojumā (diena pret nakti), pārvietotas mēbeles vai izteiktu vizuālo elementu trūkums (vienkārša balta siena) var neļaut atjaunot enkuru. Lietojumprogrammas jāizstrādā tā, lai tās graciozi apstrādātu šos atjaunošanas kļūmes.
- Koplietošana starp ierīcēm un starp platformām: WebXR standarts nodrošina, ka enkuru var atjaunot tajā pašā ierīcē. Tas pats par sevi neatrisina enkura atrašanās vietas koplietošanas problēmu starp dažādām ierīcēm (piemēram, Android tālruni un nākotnes AR austiņām) vai platformām (WebXR un vietējo iOS ARKit lietotni). Šīs "vairāku lietotāju, vairāku ierīču" problēmas risināšanai parasti ir nepieciešams papildu tehnoloģiju slānis, ko bieži dēvē par AR Cloud pakalpojumu, kas var apvienot un saskaņot telpiskās kartes no dažādiem avotiem.
- Privātums un lietotāja piekrišana: Mums kā izstrādātājiem ir pienākums būt caurspīdīgiem pret lietotājiem. Tā kā noturīgais AR ietver datu saglabāšanu par lietotāja fizisko vidi, ir svarīgi skaidri paskaidrot, kāpēc jums ir nepieciešama atļauja `anchors` un kā dati tiks izmantoti. Lietotāju uzticība ir ārkārtīgi svarīga šīs tehnoloģijas ieviešanai.
Nākotne ir noturīga: kas tālāk iegremdējošajam tīmeklim?
WebXR noturīgie enkuri ir milzīgs solis uz priekšu, bet tie ir tikai sākums. Iegremdējošā tīmekļa evolūcija virzās uz savienotāku un kontekstzinīgāku nākotni.
Mēs redzam WebXR ģeotelpisko API parādīšanos, kas ļauj enkurus saistīt ar reālās pasaules ģeogrāfiskajām koordinātēm (platumu, garumu, augstumu virs jūras līmeņa). Tas ļaus izveidot liela mēroga, visas pilsētas AR pieredzi, kas balstīta uz atvērtiem tīmekļa standartiem.
Turklāt AR Cloud platformu izstrāde nodrošinās aizmugures infrastruktūru, kas nepieciešama patiesi koplietojamai, noturīgai un starpplatformu AR pieredzei. Šīs platformas tiks galā ar grūto uzdevumu saskaņot telpiskās kartes no miljoniem dažādu ierīču, izveidojot vienu, koplietojamu reālās pasaules digitālo dvīni.
Šo tehnoloģiju kombinācija norāda uz nākotni, kurā tīmeklis atbrīvojas no 2D ekrāna. Tas kļūs par telpisku informācijas, izklaides un lietderības slāni, ar kuru mēs varam dabiski mijiedarboties savā fiziskajā apkārtnē. Noturīgie enkuri ir kritisks, fundamentāls elements, kas padara šo vīziju iespējamu.
Secinājums: Sāciet veidot noturīgu tīmekli jau šodien
WebXR noturīgie enkuri ir vairāk nekā tikai jauns API; tie atspoguļo būtiskas pārmaiņas tajā, kas ir iespējams tīmeklī. Tie dod izstrādātājiem iespēju veidot AR lietojumprogrammas ar atmiņu, kontekstu un ilgstošu vērtību. No tā, kā mēs iepērkamies, strādājam un mācāmies, līdz jaunu mākslas un izklaides veidu radīšanai potenciāls ir milzīgs.
Šķērslis ienākšanai nekad nav bijis zemāks. Izmantojot modernu viedtālruni un tīmekļa pārlūkprogrammu, izstrādātāji jebkur pasaulē var sākt eksperimentēt ar noturīgas, pasaules apzinīgas pieredzes radīšanu. Ceļojums uz patiesi iegremdējošu, telpisku tīmekli ir sācies, un tas tiek būvēts uz atvērtiem standartiem, kas ir pieejami ikvienam. Laiks sākt būvēt ir tagad.